#ifdef HERZELEID_DESKTOP
 #if _MSC_VER
  #pragma once
 #endif

 #ifndef __HERZELEID_SPLASHSCREEN_INCLUDED__
  #define __HERZELEID_SPLASHSCREEN_INCLUDED__
  #include "HerzeleidApplicationModelActivation.hxx"
  #include "HerzeleidTypedEvent.hxx"
  #include "HerzeleidRect.hxx"

// Provides dismissal event and screen location information for the app's splash screen.
HerzeleidAppModelActivationNamespaceBegin class SplashScreen
{
	// Internal types 
	typedef HerzeleidFoundationNamespaceImpl::TypedEvent<SplashScreen, void>  DismissalEvent;
	typedef HerzeleidFoundationNamespaceImpl::Rect Rect;
	TinyTypeDecl( Rect ); 

protected:
	// Members

	Rect m_ImageLocation;														// The coordinates of the app's splash screen image relative to the window.

public:
	SplashScreen();

	// Events

	//mutable Foundation::TypedEvent<SplashScreen, Object> Dismissed;				// Fires when the app's splash screen is dismissed.

	// Properties

	DeclGetPropOnly( RectConstPtrConst, ImageLocation );						// The coordinates of the app's splash screen image relative to the window.
	DeclConstTypedGetterFor( RectConstPtrConst, ImageLocation );				// The coordinates of the app's splash screen image relative to the window.

} HerzeleidAppModelActivationNamespaceEnd; 

HerzeleidAppModelActivationNamespaceBegin
	TinyTypeDecl( SplashScreen ); // Provides dismissal event and screen location information for the app's splash screen.
HerzeleidAppModelActivationNamespaceEnd

#endif // !HERZELEID_SPLASHSCREEN_INCLUDED__
#endif // !HERZELEID_DESKTOP
